#include "stimulatehelper.h"
#include "qdebug.h"

/**
 * 循环刺激命令的参数
 * @brief StimulateHelper::loopStimulateParam
 * @param order
 * @param configParam
 * @return
 */
QByteArray StimulateHelper::loopStimulateParam(const QByteArray &order, const QByteArray &configParam)
{

    // 验证输入参数
    if (order.size() < 6 || configParam.size() < 8) {
        qWarning() << "Invalid input parameters";
        return QByteArray();
    }

    // 初始化15字节数组，全部置0
    QByteArray data(15, 0x00);

    // 将order参数复制到data
    for (int i = 0; i < 6; i++) {
        data[i] = order[i];
    }

    // 将configParam参数复制到data
    for (int i = 0; i < 8; i++){
        data[6 + i] = configParam[i];
    }

    quint8 checkSum = 0;
    for (int i = 2; i < 14; i++) {
        checkSum = checkSum + static_cast<quint8>(data[i]);
    }

    data[14] = static_cast<char>(checkSum & 0xFF);

    return data;
}
